Members
Overall Objectives
Research Program
Application Domains
New Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: New Software and Platforms

Other Maintained Tools

The ALEA library for randomized algorithms

Participant : Christine Paulin-Mohring [contact] .

Criteria for Software Self-Assessment: A-2, SO-3, SM-2, EM-3, SDL-4, OC-4.

The ALEA library is a Coq development for modeling randomized functional programs as distributions using a monadic transformation. It contains an axiomatisation of the real interval [0,1] and its extension to positive real numbers. It introduces definition of distributions and general rules for approximating the probability that a program satisfies a given property.

ALEA is used as a basis of the Certicrypt environment (MSR-Inria joint research center, Imdea Madrid, Inria Sophia-Antipolis) for formal proofs for computational cryptography [55] . It is also experimented in LABRI as a basis to study formal proofs of probabilistic distributed algorithms.

ALEA is distributed as open source, at http://www.lri.fr/~paulin/ALEA . Latest version is 8 released in May 2013. In particular, it includes a module to reason about random variables with values in positive real numbers.

Bibtex2html

Participants : Jean-Christophe Filliâtre [contact] , Claude Marché.

Criteria for Software Self-Assessment: A-5, SO-3, SM-3, EM-3, SDL-5, OC-4.

Bibtex2html is a generator of HTML pages of bibliographic references. Distributed as open source since 1997, under the GPL license, at http://www.lri.fr/~filliatr/bibtex2html/ . Latest version is 1.98 released in July 2014. Bibtex2html is also distributed as a package in most Linux distributions, and in the OPAM packaging system http://opam.ocaml.org/packages/bibtex2html/bibtex2html.1.98/ .

We estimate that between 10000 and 100000 web pages have been generated using Bibtex2html.

The Coccinelle library for term rewriting

Participant : Évelyne Contejean [contact] .

Criteria for Software Self-Assessment: A-2, SO-3, SM-2, EM-2, SLD-2, OC-4.

Coccinelle is a Coq library for term rewriting. Besides the usual definitions and theorems of term algebras, term rewriting and term ordering, it also models a number of algorithms implemented in the CiME toolbox, such as matching, matching modulo associativity-commutativity, computation of the one-step reducts of a term, recursive path ordering (RPO) comparison between two terms, etc. The RPO algorithm can effectively be run inside Coq, and is used in the Color developement (http://color.inria.fr/ ) as well as for certifying Spike implicit induction theorems in Coq (Sorin Stratulat).

Coccinelle is available at http://www.lri.fr/~contejea/Coccinelle , and is distributed under the Cecill-C license.

OCamlgraph

Participants : Jean-Christophe Filliâtre [contact] , Sylvain Conchon.

OCamlgraph is a graph library for OCaml. It features many graph data structures, together with many graph algorithms. Data structures and algorithms are provided independently of each other, thanks to OCaml module system. OCamlgraph is distributed as open source, under the LGPL license, at http://OCamlgraph.lri.fr/ . Latest version is 1.8.5, released in March 2014. It is also distributed as a package in several Linux distributions. OCamlgraph is now widely spread among the community of OCaml developers, and available as an OPAM package http://opam.ocaml.org/packages/ocamlgraph/ocamlgraph.1.8.5/ .

Mlpost

Participant : Jean-Christophe Filliâtre [contact] .

Mlpost is a tool to draw scientific figures to be integrated in LaTeX documents. Contrary to other tools such as TikZ or MetaPost, it does not introduce a new programming language; it is instead designed as a library of an existing programming language, namely OCaml. Yet it is based on MetaPost internally and thus provides high-quality PostScript figures and powerful features such as intersection points or clipping. Mlpost is distributed as open source, under the LGPL license, at http://mlpost.lri.fr/ . Mlpost was presented at JFLA'09 [52] .

Mlpost is available as an OPAM package http://opam.ocaml.org/packages/mlpost/mlpost.0.8.1/ .

Functory

Participant : Jean-Christophe Filliâtre [contact] .

Functory is a distributed computing library for OCaml. The main features of this library include (1) a polymorphic API, (2) several implementations to adapt to different deployment scenarios such as sequential, multi-core or network, and (3) a reliable fault-tolerance mechanism. Functory was presented at JFLA 2011 [91] and at TFP 2011 [90] .

Functory is distributed as open source, under the LGPL license, at http://functory.lri.fr/ , and in the OPAM packaging system http://opam.ocaml.org/packages/functory/functory.0.5/ . Latest version is 0.5, release in March 2013.

The Why Environment

Participants : Claude Marché [contact] , Jean-Christophe Filliâtre, Guillaume Melquiond, Andrei Paskevich.

Criteria for Software Self-Assessment: A-3, SO-4, SM-3, EM-2, SDL-5-down, OC-4.

The Why platform is a set of tools for deductive verification of Java and C source code. In both cases, the requirements are specified as annotations in the source, in a special style of comments. For Java (and Java Card), these specifications are given in JML and are interpreted by the Krakatoa tool. Analysis of C code must be done using the external Frama-C environment, and its Jessie plugin which is distributed in Why.

The platform is distributed as open source, under GPL license, at http://why.lri.fr/ .

It also distributed as part of major Linux distributions and in the OPAM packaging system http://opam.ocaml.org/packages/why/why.2.34/ . Version 2.34 was released in August 2014, to provide a version compatible with both Frama-CNeon and Why3 0.83.

The internal VC generator and the translators to external provers are no longer under active development, as superseded by the Why3system described above. The Krakatoa and Jessie front-ends are still maintained, although using now by default the Why3 VC generator. These front-ends are described in a specific web page http://krakatoa.lri.fr/ . They are used for teaching (University of Evry, École Polytechnique, etc.), used by several research groups in the world, e.g at Fraunhofer Institute in Berlin [92] , at Universidade do Minho in Portugal [50] , at Moscow State University, Russia (http://journal.ub.tu-berlin.de/eceasst/article/view/255 ).